#include <bits/stdc++.h>

using namespace std;
typedef long long LL;
const int N = 100010;

int n;
int tr[N]; //出现次数的前缀和
int a[N]; //桶

int lowbit(int x)
{
	return x & -x;
}

void add(int x, int c)
{
	//可以直接枚举到x的最大范围，也可以在输入时自己用个变量记录最大x
	for (int i = x; i <= 32010; i += lowbit(i)) {
		tr[i] += c;
	}
}

//查询区间[1,x]位置存在数的个数（次数和）
int sum(int x)
{
	int res = 0;
	for (int i = x; i; i -= lowbit(i)) {
		res += tr[i];
	}
	return res;
}

int main()
{
	std::ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cin >> n;
	int x, y;
	for (int i = 1; i <= n; ++i) {
		cin >> x >> y;
		//x之前的星星个数
		int cnt = sum(x + 1);
		//cnt级的星星数++
		a[cnt]++;
		//x这个数加入树状数组，出现次数为1
		add(x + 1, 1);
	}
	for (int i = 0; i < n; ++i) {
		printf("%d\n", a[i]);
	}
	return 0;
}
